package storage

import (
	"encoding/json"
	"git-todo/internal/git"
	"git-todo/internal/model"
	"os"
)

var todoFileName string = "todo-data.json"

func LoadTodos() (model.TodoData, error) {
	filePath, err := git.GetGitDir()
	if err != nil {
		return nil, err
	}
	data, err := os.ReadFile(filePath + "/" + todoFileName)
	if err != nil {
		if os.IsNotExist(err) {
			return make(model.TodoData), nil
		}
		return nil, err
	}

	var todos model.TodoData
	err = json.Unmarshal(data, &todos)
	return todos, err
}

func SaveTodos(todos model.TodoData) error {
	filePath, err := git.GetGitDir()
	if err != nil {
		return err
	}

	data, err := json.Marshal(todos)
	if err != nil {
		return err
	}

	err = os.WriteFile(filePath + "/" + todoFileName, data, 0644)
	return err
}
